package com.bmob.lover.viewmodel.request

import com.bmob.lover.app.ext.assembly
import com.bmob.lover.app.ext.equal
import com.bmob.lover.data.model.enums.BackgroundType
import com.bmob.lover.data.model.bean.Background
import com.bmob.lover.viewmodel.base.BaseLoverRequestViewModel
import rxhttp.wrapper.cahce.CacheMode

//  ┏┓　　　┏┓
//┏┛┻━━━┛┻┓
//┃　　　　　　　┃
//┃　　　━　　　┃
//┃　┳┛　┗┳　┃
//┃　　　　　　　┃
//┃　　　┻　　　┃
//┃　　　　　　　┃
//┗━┓　　　┏━┛
//    ┃　　　┃                  神兽保佑
//    ┃　　　┃                  永无BUG！
//    ┃　　　┗━━━┓
//    ┃　　　　　　　┣┓
//    ┃　　　　　　　┏┛
//    ┗┓┓┏━┳┓┏┛
//      ┃┫┫　┃┫┫
//      ┗┻┛　┗┻┛
/**
 * @author The one
 * @date 2021-05-12 10:16
 * @describe TODO
 * @email 625805189@qq.com
 * @remark
 */
class FestivalBgRequestViewModel :
    BaseLoverRequestViewModel<Background>() {

    var type: Int = -1

    override fun where(): String {
        return assembly(equal("type", type), isDelete)
    }

    override fun bql(): String {
        if(type != -1) return super.bql()
        return "select * from Background where type in (${BackgroundType.FESTIVAL},${BackgroundType.JIEQI}) and isDelete = false order by date desc}"
    }

    override fun skip(): Boolean = false

    override fun order(): String = "date"

    override fun cacheMode(): CacheMode {
        return when {
            isFirst -> CacheMode.READ_CACHE_FAILED_REQUEST_NETWORK
            isFresh -> CacheMode.NETWORK_SUCCESS_WRITE_CACHE
            else -> CacheMode.ONLY_NETWORK
        }
    }

}